package com.aischool.utils;

import java.util.HashMap;
import java.util.Map;

/**
 * Api返回结果，Json格式
 * 用法示例：
 * //设置返回数据
 * jr.setData(null);
 * // 添加返回数据
 * jr.setDicKV("new_key", "new object()");
 * // 设置分页数据
 * jr.setPageData("pagedata", "listdata", 1, 1);
 * // 设置状态码
 * jr.setCode(JsonResultEnum.Success.getCode());
 * // 设置返回信息
 * jr.setMsg(JsonResultEnum.Success.getMsg());
 * // 输出json
 * renderJson(jr.Dic);
 */
public class JsonResult {
	/**
	 * JSON数据字典
	 */
	public Map<String, Object> Dic = new HashMap<String, Object>();

	public JsonResult() {
		Dic.put("code", 0);
		Dic.put("msg", "");
		Dic.put("data", "");
	}
	
	/**
	 * 设置状态码
	 * @param v
	 */
	public void setCode(int v) {
		Dic.put("code", v);
	}
	
	public Integer getCode() {
		return Integer.parseInt(Dic.get("code").toString());
	}

	/**
	 * 设置返回消息
	 * @param v
	 */
	public void setMsg(String v){
		Dic.put("msg", v);
	}
	
	/**
	 * 添加返回消息
	 * @param v
	 */
	public void appendMsg(String v){
		Dic.put("msg", Dic.get("msg").toString() + v);
	}

	/**
	 * 设置返回数据
	 * @param v
	 */
	public void setData(Object v){
		Dic.put("data", v);
	}
	
	/**
	 * 设置错误消息枚举
	 * @param jrenum
	 */
	public void setEnum(JsonCodeEnum jsonCodeEnum) {
		Dic.put("code", jsonCodeEnum.getCode());
		Dic.put("msg", jsonCodeEnum.getMsg());
	}
	
	/**
	 * 添加分页数据
	 * @param keyName 键
	 * @param pageData 当前页数据
	 * @param pageCount 总页数
	 * @param itemCount 记录总数
	 */
	public void setPageData(String keyName, Object pageData, int pageCount, int itemCount) {
		Map<String, Object> dicPage = new HashMap<String, Object>();
		dicPage.put("listData", pageData);
		dicPage.put("pageCount", pageCount);
		dicPage.put("itemCount", itemCount);
		Dic.put(keyName, dicPage);
	}

	/**
	 * 自定义Map数据
	 * @param key 键
	 * @param v 键值
	 */
	public void setDicKV(String key, Object v) {
		Dic.put(key, v);
	}
	
	public String getDicKey(String key) {
		if (Dic.containsKey(key)) {
			return Dic.get(key).toString();
		}else {
			return "";
		}
	}
	
	public String getMsg() {
		return Dic.get("msg").toString();
	}
}
